﻿@* Quitar esta sección si se utilizan agrupaciones *@
@section Scripts {
    <script src="~/Scripts/jquery.validate.min.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
}
@{
    Layout = "~/_SiteLayout.cshtml";
    Page.Title = "Consultar Historico Eleccion.";

    if (!WebSecurity.IsAuthenticated)
    {
        Response.Redirect("../Account/login.cshtml");
    }

    // Inicializar variables de página generales        
    var Cbo_empresa = "";

    // Validación de la instalación
    Validation.RequireField("Cbo_empresa", "Debe seleccionar una empresa.");    
}
@if (!User.IsInRole("Admin") && !User.IsInRole("Candidato"))
{
    ModelState.AddError("errorGeneral", "El usuario: " + User.Identity.Name + " NO tiene permisos sobre este formulario.");
    @Html.ValidationMessage("errorGeneral")   
}
else
{   
    <form id="form1" method="post" action="">
    @AntiForgery.GetHtml()
    @* Si existe al menos un error de validación, informar al usuario *@
    @Html.ValidationSummary("No hay elecciones para la empresa. Inténtelo de nuevo.", excludeFieldErrors: true, htmlAttributes: null)
    @{
    Empresa Obj_empresa = new Empresa();
    Obj_empresa.Objempresa.estado = true;
    var lista_empresa = Obj_empresa.consultar_total(1);
    }
    <fieldset>
        <legend>Formulario de historico de elecciones.</legend>
        <ol>
            <li class="email">
                <label for="Cbo_empresa" @if (!ModelState.IsValidField("Cbo_empresa"))
                                         {<text> class="error-label" </text> }>
                    Empresa</label>
                <select id="Cbo_empresa" name="Cbo_empresa" @Validation.For("Cbo_empresa")>
                    <option value="0">Seleccione</option>
                    @foreach (var propiedad in lista_empresa)
                    {
                        if (!IsPost)
                        {
                        <option value="@propiedad.id_empresa">@propiedad.nombre</option>                                
                        }
                        else
                        {
                            if (Request["Cbo_empresa"].ToString().Trim() == propiedad.id_empresa.ToString().Trim())
                            {
                        <option value="@propiedad.id_empresa " selected="selected">@propiedad.nombre</option>                                
                            }
                            else
                            {
                        <option value="@propiedad.id_empresa ">@propiedad.nombre</option>                                
                            }
                        }
                    }
                </select>
                @Html.ValidationMessage("Cbo_empresa")
            </li>
            <li>
@{
if (IsPost)
    {
        AntiForgery.Validate();
        Cbo_empresa = Request.Form["Cbo_empresa"];

        if (Cbo_empresa.IsEmpty() || Cbo_empresa.ToString().Trim() == "0")
        {
            ModelState.AddError("Cbo_empresa", "Seleccione una empresa.");            
        }

        if (Validation.IsValid() && ModelState.IsValid)
        {
            Candidato Obj_candidatos = new Candidato();
            Obj_candidatos.Objeleccion.id_empresa = int.Parse(Cbo_empresa.ToString());
            Obj_candidatos.Objeleccion.estado = true;
            var Lista_eleccion = Obj_candidatos.consul_ele(1);
            <table>
                <tr>                      
                    <td>                      
                        Nro. Elección                            
                    </td>
                    <td>                      
                        Elección                            
                    </td>
                    <td>                      
                        Ganador elección                            
                    </td>
                    <td>                      
                        Rendimiento candidato                            
                    </td>
                </tr>
                @{
                    int contador = 1;               
                    foreach (var propiedad in Lista_eleccion)
                    {                                                
                        <tr>
                            <td>
                                @contador
                            </td>
                            <td>
                                @propiedad.titulo
                            </td>
                            <td>
                               <a href="GanadorEleccion.cshtml?Val=1&Cbo_empresa=@Cbo_empresa&Cbo_eleccion=@propiedad.id_eleccion">Ganador eleccion</a>
                            </td>
                            <td>
                                <a href="RendimientoCandidato.cshtml?Val=1&id=@Cbo_empresa&Cbo_eleccion=@propiedad.id_eleccion">Rendimiento candidato</a>
                            </td>
                        </tr>
                        contador += 1;
                    }
                }
            </table>
            /**
            Reporte Obj_reporte = new Reporte();
            Obj_reporte.Objrendimientocandidato.Id_eleccion = int.Parse(Cbo_empresa.ToString());
            Obj_reporte.Objrendimientocandidato.Id_candidato = int.Parse(Cbo_empresa.ToString());
            
            var Lista_reporte = Obj_reporte.consultar_rendimiento_candidato(1);

            if (Lista_reporte.Count > 0)
            {
                List<Vo_reporte> Lista_val = new List<Vo_reporte>();

                foreach (var propiedad in Lista_reporte)
                {
                    Vo_reporte Obj_vo_reporte = new Vo_reporte();
                    Obj_vo_reporte.Candidto_vo = propiedad.nombre_candidato;
                    Obj_vo_reporte.Votos_vo = propiedad.votos;
                    Lista_val.Add(Obj_vo_reporte);
                }

                var myChart = new Chart(width: 600, height: 400)
                .AddTitle("Resultados Rendimiento Candidato")
                .AddSeries(name: "Eleccion", chartType: "Bar",
                           xValue: Lista_val,
                           xField: "Candidto_vo",
                           yValues: Lista_val,
                           yFields: "Votos_vo")
                .Write();
            }
            else
            {
                ModelState.AddFormError("No hay datos de la elección selecionada.");
            }
            */
        }
    }    
}
            </li>
        </ol>
        <input type="submit" value="Consultar" />
    </fieldset>
    </form>
}